These packages described in this article are a first step toward the building
of a comprehensive signal processing environment in <#1186#>Mathematica<#1186#>.
We have implemented the common signal processing transforms
and other rudimentary analysis capabilities.
But <#1187#>Mathematica<#1187#> has the potential to do much more.
We have developed packages that aid in filter design and perform
discrete and continuous convolution in one dimension.
We are developing an exhaustive collection of windowing functions,
which are also important in time series analysis.
Other packages under development will take further the idea of
representing signals and systems as abstract objects,
empowering <#1188#>Mathematica<#1188#> to reason about properties of
signals and transforms, to run simulations of systems, and
to find optimal implementations of signal processing expressions.
The ultimate goal is to have <#1189#>Mathematica<#1189#> facilitate fast prototyping of algorithms
by first optimizing an algorithm (subject to design specification and the
limitations of the target architecture) and then generate the equivalent
code for the architecture.
This paper also describes how students could use <#1190#>Mathematica<#1190#> to supplement
classroom lectures and laboratory experience.
Using Notebooks, students can load the signal processing packages and
tackle homework problems in linear systems while documenting the solution
as they go.
Notebooks can also serve as tutorials.
We have written four Notebooks covering the topics of piecewise convolution,
analog filter design, Laplace transform, and the z-transform.
The Notebook are currently in use in several engineering and mathematics
departments, including Rose-Hulman Institute of Technology,
Georgia Institute of Technology, Uninversity of Pennsylvannia,
and Pennsylvannia State University.
Although some schools are integrating <#704#>Mathematica<#704#> into their
curricula, we hope that more schools encourage students to use it.